package org.edu.modules.scheduleCommon.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.edu.common.system.base.entity.BaseEntity;
import org.hibernate.validator.constraints.Length;
import org.jeecgframework.poi.excel.annotation.Excel;

import java.io.Serializable;

/**
 * entity-学生信息表
 */
@TableName("ve_base_student")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "学生信息表对象", description = "ve_base_student")
public class VeBaseStudent implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Integer id;

    @TableField
    @ApiModelProperty(value = "身份证号，唯一")
    @Length(max = 20)
    private String sfzh;

    @TableField
    @ApiModelProperty(value = "学号")
    @Length(max = 30)
    private String xh;

    @TableField
    @ApiModelProperty(value = "姓名")
    @Length(max = 20)
    private String xm;

    @TableField
    @ApiModelProperty(value = "性别码1男生2女生")
    @Length(max = 4)
    private String xbm;

    @TableField("user_id")
    @ApiModelProperty(value = "用户ID")
    @Length(max = 32)
    private String userId;

    @TableField
    @ApiModelProperty(value = "民族码")
    @Length(max = 11)
    private String mzm;

    @TableField
    @ApiModelProperty(value = "报名号")
    @Length(max = 20)
    private String bmh;

    @TableField
    @ApiModelProperty(value = "就读方式：1住校，2走读")
    private Integer jdfs;

    @TableField
    @ApiModelProperty(value = "当前状态码'XS'=>'新生', 'ZX' => '在校', 'XX' => '休学', 'TX' => '退学', 'KC' => '开除', 'BY' => '毕业', 'YY' => '肄业', 'ZXX' => '转学', 'JY' => '结业'")
    @Length(max = 6)
    private String xsdqztm;

    @TableField
    @ApiModelProperty(value = "入学年月")
    private Integer rxny;

    @TableField
    @ApiModelProperty(value = "学制;与学制表关联")
    private Integer xz;

    @TableField("fal_id")
    @ApiModelProperty(value = "院系ID")
    private Integer falId;

    @TableField("fal_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String falText;

    @TableField("spec_id")
    @ApiModelProperty(value = "专业ID")
    private Integer specId;

    @TableField("spec_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String specText;

    @TableField("bj_id")
    @ApiModelProperty(value = "班级ID")
    private Integer bjId;

    @TableField("bj_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String bjText;

    @TableField("grade_id")
    @ApiModelProperty(value = "年级ID")
    private Integer gradeId;

    @TableField("grade_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String gradeText;

    @TableField("create_time")
    @ApiModelProperty(value = "创建时间")
    private Integer createTime;

    @TableField("update_time")
    @ApiModelProperty(value = "更新时间")
    private Integer updateTime;

    @TableField
    @ApiModelProperty(value = "户口所在省份")
    @Length(max = 50)
    private String province;

    @TableField("province_id")
    @ApiModelProperty(value = "户口所在省份ID")
    private Integer provinceId;

    @TableField
    @ApiModelProperty(value = "户口所在市")
    @Length(max = 50)
    private String city;

    @TableField("city_id")
    @ApiModelProperty(value = "户口所在市Id")
    private Integer cityId;

    @TableField
    @ApiModelProperty(value = "户口所在区")
    @Length(max = 50)
    private String county;

    @TableField("county_id")
    @ApiModelProperty(value = "户口所在区ID")
    private Integer countyId;

    @TableField("sheng_id")
    @ApiModelProperty(value = "生源地省id")
    private Integer shengId;

    @TableField("shi_id")
    @ApiModelProperty(value = "生源地市id")
    private Integer shiId;

    @TableField("qu_id")
    @ApiModelProperty(value = "生源地区id")
    private Integer quId;
    @ApiModelProperty("生源地省")
    @TableField("sheng")
    private String sheng;
    @ApiModelProperty("生源地市")
    @TableField("shi")
    private String shi;
    @ApiModelProperty("生源地区")
    @TableField("qu")
    private String qu;
    @TableField
    @ApiModelProperty(value = "是否是困难生 0=否  1=是")
    private Integer sfkns;

    @TableField("terminal_id")
    @ApiModelProperty(value = "终端ID")
    private Integer terminalId;

    @TableField
    @ApiModelProperty(value = "准考证号")
    @Length(max = 30)
    private String zkzh;

    @TableField
    @ApiModelProperty(value = "考生号")
    @Length(max = 20)
    private String ksh;

    @TableField("update_status")
    @ApiModelProperty(value = "更新状态（0：未更新; 1：已更新）")
    private Integer updateStatus;


    //系统字段补充，20250206 lbh sta====================================================
    /**
     * 学籍状态：有、无、全部
     */
    @Excel(name = "有无学籍", width = 15.0D)
    @ApiModelProperty("有无学籍")
    private String ywxj;
    /**
     * 是否在校：是、否
     */
    @Excel(name = "是否在校", width = 15.0D)
    @ApiModelProperty("是否在校")
    private String sfzx;
    /**
     * 姓名拼音
     */
    @Excel(name = "姓名拼音", width = 15.0D)
    @ApiModelProperty("姓名拼音")
    private String xmpy;
    /**
     * 英文名
     */
    @Excel(name = "英文名", width = 15.0D)
    @ApiModelProperty("英文名")
    private String ywm;
    /**
     * 身份证件类型码 （数据字典）
     */
    //@Excel(name = "身份证件类型", width = 15, dicCode = " code", dicText = "title", dictTable = "ve_dict_dictdata where modelCode='SFZJLX' ")
    @ApiModelProperty(value = "身份证件类型码 （数据字典）")
    //@Dict(dicCode = "modelCode='SFZJLX' and code", dicText = "title", dictTable = "ve_dict_dictdata")
    private String sfzjlxm;
    /**
     * 入学文化程度,字典表获取（初中毕业、高中毕业...）
     */
    @Excel(name = "入学文化程度", width = 15.0D)
    @ApiModelProperty("入学文化程度")
    private String rxwhcd;
    /**
     * 入学日期
     */
//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入学日期", width = 15.0D)
    @ApiModelProperty("入学日期")
    private Integer rxrq;
    @Excel(name = "入学日期", width = 15.0D)
    @TableField(exist = false)
    private String rxrqName;
    /**
     * 学生类别 字典数据：普通专科生，成人专科生，网络专科生，普通本科生，
     * 成人本科生，网络本科生，硕士研究生，博士研究生，学士学位学生，
     * 硕士学位学生，博士学位学生，辅修二专业，预科生
     */
    @Excel(name = "学生类别", width = 15.0D)
    @ApiModelProperty("学生类别")
    private String xslb;
    /**
     * 学习形式,全日制
     */
    @Excel(name = "学习形式", width = 15.0D)
    @ApiModelProperty("学习形式")
    private String xxxs;
    /**
     * 入学方式 字典数据：统招、提前招生
     */
    @Excel(name = "入学方式", width = 15.0D)
    @ApiModelProperty("入学方式")
    private String rxfs;
    /**
     * 港澳台侨外码
     */
    @Excel(name = "港澳台侨外码", width = 15.0D)
    @ApiModelProperty("港澳台侨外码")
    private String gatqwm;
    /**
     * 户口所在地
     */
    @Excel(name = "户口所在地", width = 15.0D)
    @ApiModelProperty("户口所在地")
    private String hkszd;
    /**
     * 生源所在地
     */
    @Excel(name = "生源所在地", width = 15.0D)
    @ApiModelProperty("生源所在地")
    private String syszd;
    /**
     * 户口性质 非农业户口
     */
    @Excel(name = "户口性质", width = 15.0D)
    @ApiModelProperty("户口性质")
    private String hksz;
    /**
     * 户口详细地址
     */
    @Excel(name = "户口详细地址", width = 15.0D)
    @ApiModelProperty("户口详细地址")
    private String hkxxdz;
    /**
     * 户籍所属派出所
     */
    @Excel(name = "户籍所属派出所", width = 15.0D)
    @ApiModelProperty("户籍所属派出所")
    private String hjsspcs;

    //系统字段补充，20250206 lbh end====================================================

}
